﻿
using System.Collections.Generic;
using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.SpecificServiceType;
using BCEntity.TMS.SpecificServiceType;

namespace BCService.TMS.SpecificServiceType
{
    public interface ISpecificServiceTypeService
    {
        /// <summary>
        /// 添加新特殊服务类型纪录
        /// </summary>
        /// <param name="specificServiceTypeRequestDto"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        SpecificServiceTypeDto Add(SpecificServiceTypeRequestDto specificServiceTypeRequestDto, AdminDto admin);


        /// <summary>
        /// 删除特殊服务类型记录
        /// </summary>
        /// <param name="specificServiceTypeId"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        void Delete(int specificServiceTypeId, AdminDto admin);


        /// <summary>
        /// 获取特殊服务类型记录
        /// </summary>
        /// <param name="specificServiceTypeId"></param>
        /// <returns></returns>
        SpecificServiceTypeDto GetById(int specificServiceTypeId);

        /// <summary>
        /// 获取特殊服务类型记录--[分页]
        /// </summary>
        /// <param name="admin"></param>
        /// <param name="isEnabled"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        PageableList<SpecificServiceTypeDto> GetList(AdminDto admin, bool? isEnabled, int pageIndex, int pageSize);

        /// <summary>
        /// 获取特殊服务类型记录
        /// </summary>
        /// <param name="isEnable"></param>
        /// <returns></returns>
        List<SpecificServiceTypeDto> GetOnlyList(bool? isEnable);


        /// <summary>
        /// 修改特殊服务类型记录
        /// </summary>
        /// <param name="specificServiceTypePutDto"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        SpecificServiceTypeDto Update(SpecificServiceTypePutDto specificServiceTypePutDto, AdminDto admin);

        /// <summary>
        /// 重写开启关闭
        /// </summary>
        /// <param name="admin"></param>
        /// <param name="specificServiceTypeId"></param>
        /// <param name="enable"></param>
        /// <returns></returns>
        SpecificServiceTypeDto UpdateEnable(AdminDto admin, int specificServiceTypeId, bool enable);
    }
}